In [102]:
%matplotlib inline

# OPTIONAL: Load the "autoreload" extension so that code can change
%load_ext autoreload

# OPTIONAL: always reload modules so that as you change code in src, it gets loaded
%autoreload 2
The autoreload extension is already loaded. To reload it, use:
  %reload_ext autoreload

Geometric Model

Model

Please enter a brief description of the model, considering that more detailed information will be entered in the following sections

General data of the building

In [103]:
import pandas as pd

input_parameters = pd.read_csv('../data/processed/cultural-e-input.csv')

Please enter the following general information related to the building

Field Value
Type of building -
Location -
Number of thermal zones -
Photovoltaic system -
Technology installed -
Position [façade or roof] -
Azimuth [°] -
Space for additional information/system -
Quantity ID
Gross floor area [m2] IN_GFA
Net floor area [m2] IN_NIA
S/V ratio IN_SV
PV capacity [kWp] IN_PV_kWp
PV area [m2] IN_A_PV
Battery capacity [kWh] IN_PV_bat
Tilt angle [°] IN_PV_Tilt
In [104]:
input_parameters[[
        'IN_GFA', 'IN_NIA', 'IN_SV', 'IN_A_PV', 'IN_PV_bat',
        'IN_PV_Tilt'
    ]]
Out[104]:
IN_GFA IN_NIA IN_SV IN_A_PV IN_PV_bat IN_PV_Tilt
0 3.0 2.0 4.0 3.0 4.0 3.0

Thermal zone

Please fill in this table for the information related to the thermal zones. This information must be provided for each thermal zone.

Please fill in this table with the general information required on the internal gains.

Figures

Please consider adding the heating setpoint schedule chart.
Please consider adding the cooling setpoint schedule chart.
Please consider adding the occupancy schedule chart.
Please consider adding the lighting schedule chart.
Please consider adding the appliances schedule chart.

Using the following sintax: ![placeholder](./placeholder.jpg)

Building envelope

Opaque envelope components

Please fill in the following table with the information related to the opaque envelope components. Please enter manually the entire table except for the section “U-value [W/m²K]”

Results

In [105]:
from pvlib.iotools import read_epw
weather, meta = read_epw('../data/processed/meteo.epw')
weather.head()
Out[105]:
year month day hour minute data_source_unct temp_air temp_dew relative_humidity atmospheric_pressure ... ceiling_height present_weather_observation present_weather_codes precipitable_water aerosol_optical_depth snow_depth days_since_last_snowfall albedo liquid_precipitation_depth liquid_precipitation_quantity
2005-01-01 00:00:00+01:00 2005 1 1 1 60 *?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*? 7.1 1.5 68 98414 ... 99999 9 999999999 10 0.118 18 0 0.732 0.0 99.0
2005-01-01 01:00:00+01:00 2005 1 1 2 60 *?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*? 6.7 1.5 69 98414 ... 99999 9 999999999 10 0.118 18 0 0.717 0.0 99.0
2005-01-01 02:00:00+01:00 2005 1 1 3 60 *?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*? 6.4 1.0 68 98414 ... 99999 9 999999999 10 0.118 18 0 0.702 0.0 99.0
2005-01-01 03:00:00+01:00 2005 1 1 4 60 *?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*? 6.2 0.8 68 98414 ... 99999 9 999999999 10 0.118 18 0 0.689 0.0 99.0
2005-01-01 04:00:00+01:00 2005 1 1 5 60 *?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*? 6.0 0.5 68 98414 ... 99999 9 999999999 10 0.118 18 0 0.676 0.0 99.0

5 rows × 35 columns

In [106]:
summary = pd.read_csv('../data/processed/summary.csv')
summary.head()
Out[106]:
Zonenr Rel_BAL BAL_ENERGY DQAIRdt QHEAT QCOOL QINF QVENT QCOUPL QTRANS QGAININT QWGAIN QSOLGAIN QSOLAIR
0 1 0.0 1.373000e-08 234.9 7298.0 9646.0 0.0 0.0 -431700.0 434200.0 0.0 0.0 0.0 0.0
1 2 0.0 7.868000e-09 113.0 29990000.0 165400.0 -37780000.0 0.0 7253000.0 -238700.0 0.0 0.0 939900.0 0.0
2 3 0.0 -1.623000e-09 1212.0 58950.0 255000.0 -1105000.0 0.0 -998100.0 -5418000.0 1215000.0 0.0 6503000.0 0.0
3 4 0.0 -4.290000e-08 2167.0 20140.0 1996000.0 -1209000.0 0.0 -4627000.0 -9161000.0 4704000.0 0.0 12270000.0 0.0
4 5 0.0 3.032000e-09 1822.0 47720.0 1057000.0 -747700.0 0.0 -1713000.0 -3799000.0 2227000.0 0.0 5044000.0 0.0
In [107]:
energy_zones = pd.read_csv('../data/processed/energy_zones.csv')
energy_zones.head()
Out[107]:
TIME REL_BAL_ENERGY 1_B4_QBAL 1_B4_DQAIRdT 1_B4_QHEAT 1_B4_QCOOL 1_B4_QINF 1_B4_QVENT 1B4_QCOUP 1_B4_QTRANS ... 5_B4_QHEAT 5_B4_QCOOL 5_B4_QINF 5_B4_QVENT 5B4_QCOUP 5_B4_QTRANS 5_B4_QGINT 5_B4_QWGAIN 5_B4_QSOL 5_B4_QSOLAIR
0 0 0.0 1.731000e-11 -8.356 0.0 0.0 0.0 0.0 -41.42 33.07 ... 0.0 0.0 -83.14 0.0 62.85 -554.3 374.9 0.0 6.750000e-12 0.0
1 1 0.0 -4.974000e-13 -2.190 0.0 0.0 0.0 0.0 -42.78 40.59 ... 0.0 0.0 -56.99 0.0 97.38 -387.7 374.9 0.0 -1.031000e-12 0.0
2 2 0.0 9.365000e-12 2.555 0.0 0.0 0.0 0.0 -27.60 30.15 ... 0.0 0.0 -36.10 0.0 82.31 -395.9 374.9 0.0 5.851000e-12 0.0
3 3 0.0 4.469000e-12 -4.190 0.0 0.0 0.0 0.0 -29.01 24.82 ... 0.0 0.0 -37.67 0.0 72.04 -414.2 374.9 0.0 -7.967000e-13 0.0
4 4 0.0 3.180000e-12 -1.234 0.0 0.0 0.0 0.0 -27.87 26.64 ... 0.0 0.0 -38.77 0.0 64.68 -407.8 374.9 0.0 -7.522000e-12 0.0

5 rows × 62 columns

In [108]:
cultural_e = pd.read_csv('../data/processed/cultural-e.csv')
cultural_e.head()
Out[108]:
TIME SQHEAT_1 SQCOOL_1 TAIR_F1undfA1 TOP_F1undfA1 TAIR_F1undfA2 TOP_F1undfA2 TAIR_F1nightA1 TOP_F1nightA1 TAIR_F1dayA ... label.50 label.51 label.52 label.53 label.54 label.55 label.56 label.57 label.58 label.59
0 0 9360.0 0.0 21.9 21.9 21.0 20.8 21.9 21.9 22.9 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
1 1 9440.0 0.0 21.8 21.9 21.0 20.8 21.9 21.8 22.6 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2 2 6740.0 0.0 21.8 21.8 21.0 20.8 21.8 21.7 22.6 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
3 3 4460.0 0.0 21.8 21.8 21.0 20.8 21.8 21.7 22.6 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4 4 4640.0 0.0 21.7 21.8 21.0 20.8 21.8 21.7 22.6 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

5 rows × 101 columns

In [109]:
from src.visualization import visualize as viz

Climate

The weather conditions of a location play an important role in the energy performance of a building. In the next subsections, some results in terms of outdoor air temperature, global horizontal irradiance, and relative humidity, are presented.

In [110]:
viz.air_temperature(weather)
2021-03-05T10:50:19.658565 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph Hourly dry-bulb temperature distribution and the cumulative frequency of a standard year.
Interpretation of results [Please enter manually this field]
In [111]:
viz.relative_humidity(weather)
2021-03-05T10:50:22.761229 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
In [112]:
viz.horizontal_irradiance(weather)
2021-03-05T10:50:25.877080 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/

Energy

This section shows the main results in terms of energy balance of the building, energy consumption considering the total energy use of the house and overall heating load considering an ideal heating and/or cooling system. It also gives information on the use of renewable energy in case a photovoltaic system has been installed in the building.

In [113]:
viz.heating_loads(cultural_e)
2021-03-05T10:50:26.740496 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
In [114]:
viz.cooling_loads(cultural_e)
2021-03-05T10:50:27.496258 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
In [115]:
viz.energy_balance(summary)
2021-03-05T10:50:28.538848 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
In [116]:
for zone in ['1', '2', '3', '4', '5']:
    viz.zone_energy_balance(energy_zones, zone)
2021-03-05T10:50:30.445642 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
2021-03-05T10:50:32.577141 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
2021-03-05T10:50:35.226915 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
2021-03-05T10:50:37.867806 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
2021-03-05T10:50:40.303040 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
In [117]:
viz.monthly_consumption(cultural_e)
2021-03-05T10:50:43.199275 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
In [118]:
viz.self_production_consumption(cultural_e)
2021-03-05T10:50:44.225382 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/

Comfort

This section has been organized to show the main results in terms of thermal comfort, visual comfort and IAQ. For each group of output, you will be asked to enter the results for each thermal zone. If you think it is useful to assess the comfort in only some areas of the building or only in one, enter the results only for those useful for your evaluation.

Mean indoor temperature

In [120]:
viz.airt_heatmap(cultural_e, 'F1dayA')
2021-03-05T10:50:54.286544 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
In [119]:
viz.psychrochart(cultural_e.sample(n=1000), 'F1dayA', weather.sample(n=1000)).get_figure()
Out[119]:
2021-03-05T10:50:48.540756 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/

Indoor Air Quality

In order to assess the air quality of the building during the occupied time, considering the people as one of the main pollution sources, the level of the CO2 concentration generated by the occupants, need to be calculated. The limits for indoor CO2 concentrations leading to the four IAQ categories have been calculated in accordance with the standard EN 16798-1: 2019.

Carbon Dioxide

In [123]:
viz.iaq_co2(cultural_e, ['F1dayA'], ['F1nightA1', 'F1nightA2'])
2021-03-05T10:51:06.929886 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/

Relative Humidity

Another necessary parameter to evaluate the internal comfort of a building is the indoor relative humidity. This is important because high or low percentages lead to humid or dry environment, respectively, which has a direct effect on human well-being. An effective way to evaluate this data is to classify the number of hours in which the relative humidity of a thermal zone falls within the categories for humidification and dehumidification, identified in standard EN 16798-1: 2019.

In [124]:
viz.relh(cultural_e, ['RELHUM_F1dayA', 'RELHUM_F1nightA1', 'RELHUM_F1nightA2'], ['OCC_F1dayA', 'OCC_F1nightA1', 'OCC_F1nightA2'])
2021-03-05T10:51:07.499691 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/

Natural Ventilation

The frequency of opening the windows can be considered an interesting indicator in the evaluation of some aspects related to the performance of the building. thanks to this result it is possible to evaluate, for example, whether the action of natural ventilation alone can guarantee an acceptable level of internal comfort, whether it affects the energy consumption of the building as well as giving indications on how the occupants interact with the building.

In [122]:
viz.win_heatmap(cultural_e, 'F1dayA')
2021-03-05T10:51:04.220653 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/

Activation of the shadings

In [121]:
viz.shd_heatmap(cultural_e, 'F1dayA')
2021-03-05T10:50:59.844647 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
In [ ]: